package Code;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Code438 {
    static List<Integer> findStrs(String s, String p){
        List<Integer> res= new ArrayList<>();
        int m = s.length();
        int n = p.length();
        if(m < n)  return res;
        int[] sArr = new int[26];
        int[] pArr = new int[26];
        for(int i = 0; i< n; i++){
            sArr[s.charAt(i) -'a']++;
            pArr[p.charAt(i) -'a']++;
        }
        if(Arrays.equals(sArr, pArr)){
            res.add(0);
        }
        for(int i = 0 ; i<m -n; i++){
            sArr[s.charAt(i)-'a']--;
            sArr[s.charAt(i+n) - 'a']++;
            if(Arrays.equals(sArr,pArr)){
                res.add(i+1);
            }
        }
        return res;


    }

    public static void main(String[] args) {
        System.out.println(findStrs("ababa","ab"));
    }
}
